/**
 * requetesReseau.java    19/04/2012
 */

package l3.info.Projet.RMI;

import java.rmi.Remote;
import java.rmi.RemoteException;
import l3.info.Projet.Client.Utilisateur;

/**
 * Méthode à écrire dans ServeurRequetes (to override)
 * @author Aboulkacem Hamid & Loïc Martinez
 */

public interface RequetesReseau extends Remote {

    /**
     * Permet de savoir si un utilisateur existe, et si oui,
     * on va charger toutes ses données, sinon on ne fait rien
     * @param u, l'utilisateur à connecter
     * @param urlBd
     * @param userBd
     * @param passwdBd
     * @param tableUser
     * @param tableMessage
     */
    public Utilisateur utilisateurExists(Utilisateur u, String tableUser,
            String tableMessage) throws RemoteException;

    /**
     * Permet de savoir si l'utilisateur passé en paramètres existe
     * dans la base de données (bon pseudo et bon mot de passe)
     * @param u, l'utilisateur que l'on vérifie
     * @return l'utilisateur avec ses informations si la vérification
     *         a été bonne, tel quel sinon
     */
    public Utilisateur utilisateurExists(Utilisateur u) throws RemoteException;

    /**
     * Permet d'ajouter un utilisateur à suivre
     * @param myId, mon numutilisateur
     * @param id, le numutilisateur de la personne à suivre
     * @param table, la table suivre
     * @return le pseudo de la personne à suivre
     */
    public String suivreUtilisateur(int myId, int id, String table)
            throws RemoteException;

    /**
     * Permet d'ajouter un utilisateur à suivre
     * @param myId, mon numutilisateur
     * @param id, le numutilisateur de la personne à suivre
     * @return le pseudo de la personne à suivre
     */
    public String suivreUtilisateur(int myId, int id) throws RemoteException;

    /**
     * Permet de supprimer un utilisateur suivi
     * @param myId, mon numutilisateur
     * @param idToDelete, le numutilisateur de la personne à supprimer
     * @param table, la table suivre
     */
    public void removeUser(int myId, int idToDelete, String table)
            throws RemoteException;

    /**
     * Permet de supprimer un utilisateur suivi
     * @param myId, mon numutilisateur
     * @param idToDelete, le numutilisateur de la personne à supprimer
     */
    public void removeUser(int myId, int idToDelete) throws RemoteException;
}